package hcn.protocol.ods.inpatient;

import hcn.protocol.registration.MsgHeader;
import lombok.ToString;

import javax.xml.bind.annotation.*;
import java.util.List;

/**
 * @Date 2020/11/15 19:11
 * @Description: SurgeryInfoResponse
 * 手术信息
 * @Version 1.0
 */
@ToString
@XmlRootElement(name = "BSXml")
public class SurgeryInfoResponse {
    private MsgHeader MsgHeader;
    private MsgBody MsgBody;

    @XmlElement(name = "MsgHeader")
    public MsgHeader getMsgHeader() {
        return MsgHeader;
    }

    public void setMsgHeader(MsgHeader msgHeader) {
        MsgHeader = msgHeader;
    }

    @XmlElement(name = "MsgBody")
    public SurgeryInfoResponse.MsgBody getMsgBody() {
        return MsgBody;
    }

    public void setMsgBody(SurgeryInfoResponse.MsgBody msgBody) {
        MsgBody = msgBody;
    }

    public static class MsgBody {
        private String Status;
        private String Code;
        private String Detail;
        private Data Data;

        @XmlElement(name = "Status")
        public String getStatus() {
            return Status;
        }

        public void setStatus(String status) {
            Status = status;
        }

        @XmlElement(name = "Code")
        public String getCode() {
            return Code;
        }

        public void setCode(String code) {
            Code = code;
        }

        @XmlElement(name = "Detail")
        public String getDetail() {
            return Detail;
        }

        public void setDetail(String detail) {
            Detail = detail;
        }

        @XmlElement(name = "Data")
        public Data getData() {
            return Data;
        }

        public void setData(Data data) {
            Data = data;
        }

        @ToString
        public static class Data {
            private Long Total;
            private List<SurgeryInfo> RequestLists;

            @XmlElement(name = "Total")
            public Long getTotal() {
                return Total;
            }

            public void setTotal(Long Total) {
                this.Total = Total;
            }

            @XmlElementWrapper(name = "RequestLists")
            @XmlElement(name = "RequestList")
            public List<SurgeryInfo> getRequestLists() {
                return RequestLists;
            }

            public void setRequestLists(List<SurgeryInfo> requestLists) {
                RequestLists = requestLists;
            }

            @ToString
            public static class SurgeryInfo {
                private String VisitOrganization; //医院ID，医院系统身份标识
                private String VisitOrganizationName;//医院名称
                private String OperationType;//手术类别：1门诊、2住院
                private String IsEmergency;//是否急诊：1急诊、0普通
                private String OperationSourceId;//手术Id（唯一识别号）
                private String RequestId;//手术单号
                private String SourcePatientId;//患者在医院的唯一识别号
                private String Name;//患者姓名
                private String Sex;//患者性别
                private String Age;//患者年龄
                private String DoctorName;//申请医生姓名
                private String OperationCode;//手术代码
                private String OperationName;//手术名称
                private String DeptCode;//就诊科室代码（区别于deptid）
                private String DeptName;//科室名称
                private String OperationStatus;//1.已撤销申请,2已取消安排,3 待安排（已申请），4 已安排，5 麻醉中，6 手术中，7 手术结束，8 麻醉结束，9 复苏，10 转出，11 回病房（其中3-10是进行中，11是已结束（已完成））
                private String OperationStatusStr;//当前状态（文字）
                private String OperationRoomNo;//手术间（为空则返回"暂无安排"）
                private String ArrangeOperationTime;//手术安排时间（为空则返回0000-00-00 00:00:00） yyyy-MM-dd HH:mm:ss
                private String ArrangeTime;//手术时间
                private String OperationPlace;//手术地点（为空则返回"暂无安排"）
                private String OperationCounts;//台次
                private String AnesthesiaWayCode;//麻醉方法
                private String OperationPartName;//手术体位
                private String OperationIncisionDescription;//切口等级
                private String OperationLevel;//手术级别
                private List<OperatorList> OperatorLists;//手术医师集合
                private List<AnesthesiaDoctorList> AnesthesiaDoctorLists;//麻醉医师
                private List<AssistantorList> AssistantorLists;//助手集合
                private List<InstrumentNurseList> InstrumentNurseLists;//手术护士集合
                private String OperatorRequirement;//手术要求
                private String RemarkInfo;//注意事项(有多条需标序号以及换行，无则返回“暂无注意事项”)
                private String Comment;//备注
                private String HospizationId;//住院号码
                private String ClinicId;//门诊号码
                private String WardArea;//病区
                private String SickbedId;//病床号

                @XmlElement(name = "WardArea")
                public String getWardArea() {
                    return WardArea;
                }

                public void setWardArea(String wardArea) {
                    WardArea = wardArea;
                }


                @XmlElement(name = "SickbedId")

                public String getSickbedId() {
                    return SickbedId;
                }

                public void setSickbedId(String sickbedId) {
                    SickbedId = sickbedId;
                }

                @XmlElement(name = "ArrangeTime")

                public String getArrangeTime() {
                    return ArrangeTime;
                }

                public void setArrangeTime(String arrangeTime) {
                    ArrangeTime = arrangeTime;
                }

                @XmlElement(name = "HospizationId")
                public String getHospizationId() {
                    return HospizationId;
                }

                public void setHospizationId(String hospizationId) {
                    HospizationId = hospizationId;
                }

                @XmlElement(name = "ClinicId")
                public String getClinicId() {
                    return ClinicId;
                }

                public void setClinicId(String clinicId) {
                    ClinicId = clinicId;
                }

                @XmlElement(name = "Comment")
                public String getComment() {
                    return Comment;
                }

                public void setComment(String comment) {
                    Comment = comment;
                }

                @XmlElement(name = "DoctorName")
                public String getDoctorName() {
                    return DoctorName;
                }

                public void setDoctorName(String doctorName) {
                    DoctorName = doctorName;
                }

                @XmlElement(name = "VisitOrganization")
                public String getVisitOrganization() {
                    return VisitOrganization;
                }

                public void setVisitOrganization(String visitOrganization) {
                    VisitOrganization = visitOrganization;
                }

                @XmlElement(name = "VisitOrganizationName")
                public String getVisitOrganizationName() {
                    return VisitOrganizationName;
                }

                public void setVisitOrganizationName(String visitOrganizationName) {
                    VisitOrganizationName = visitOrganizationName;
                }

                @XmlElement(name = "OperationType")
                public String getOperationType() {
                    return OperationType;
                }

                public void setOperationType(String operationType) {
                    OperationType = operationType;
                }

                @XmlElement(name = "IsEmergency")
                public String getIsEmergency() {
                    return IsEmergency;
                }

                public void setIsEmergency(String isEmergency) {
                    IsEmergency = isEmergency;
                }

                @XmlElement(name = "OperationSourceId")
                public String getOperationSourceId() {
                    return OperationSourceId;
                }

                public void setOperationSourceId(String operationSourceId) {
                    OperationSourceId = operationSourceId;
                }

                @XmlElement(name = "RequestId")
                public String getRequestId() {
                    return RequestId;
                }

                public void setRequestId(String requestId) {
                    RequestId = requestId;
                }

                @XmlElement(name = "SourcePatientId")
                public String getSourcePatientId() {
                    return SourcePatientId;
                }

                public void setSourcePatientId(String sourcePatientId) {
                    SourcePatientId = sourcePatientId;
                }

                @XmlElement(name = "Name")
                public String getName() {
                    return Name;
                }

                public void setName(String name) {
                    Name = name;
                }

                @XmlElement(name = "Sex")
                public String getSex() {
                    return Sex;
                }

                public void setSex(String sex) {
                    Sex = sex;
                }

                @XmlElement(name = "Age")
                public String getAge() {
                    return Age;
                }

                public void setAge(String age) {
                    Age = age;
                }

                @XmlElement(name = "OperationCode")
                public String getOperationCode() {
                    return OperationCode;
                }

                public void setOperationCode(String operationCode) {
                    OperationCode = operationCode;
                }

                @XmlElement(name = "OperationName")
                public String getOperationName() {
                    return OperationName;
                }

                public void setOperationName(String operationName) {
                    OperationName = operationName;
                }

                @XmlElement(name = "DeptCode")
                public String getDeptCode() {
                    return DeptCode;
                }

                public void setDeptCode(String deptCode) {
                    DeptCode = deptCode;
                }

                @XmlElement(name = "DeptName")
                public String getDeptName() {
                    return DeptName;
                }

                public void setDeptName(String deptName) {
                    DeptName = deptName;
                }

                @XmlElement(name = "OperationStatus")
                public String getOperationStatus() {
                    return OperationStatus;
                }

                public void setOperationStatus(String operationStatus) {
                    OperationStatus = operationStatus;
                }

                @XmlElement(name = "OperationStatusStr")
                public String getOperationStatusStr() {
                    return OperationStatusStr;
                }

                public void setOperationStatusStr(String operationStatusStr) {
                    OperationStatusStr = operationStatusStr;
                }

                @XmlElement(name = "OperationRoomNo")
                public String getOperationRoomNo() {
                    return OperationRoomNo;
                }

                public void setOperationRoomNo(String operationRoomNo) {
                    OperationRoomNo = operationRoomNo;
                }

                @XmlElement(name = "ArrangeOperationTime")
                public String getArrangeOperationTime() {
                    return ArrangeOperationTime;
                }

                public void setArrangeOperationTime(String arrangeOperationTime) {
                    ArrangeOperationTime = arrangeOperationTime;
                }

                @XmlElement(name = "OperationPlace")
                public String getOperationPlace() {
                    return OperationPlace;
                }

                public void setOperationPlace(String operationPlace) {
                    OperationPlace = operationPlace;
                }

                @XmlElement(name = "OperationCounts")
                public String getOperationCounts() {
                    return OperationCounts;
                }

                public void setOperationCounts(String operationCounts) {
                    OperationCounts = operationCounts;
                }

                @XmlElement(name = "AnesthesiaWayCode")
                public String getAnesthesiaWayCode() {
                    return AnesthesiaWayCode;
                }

                public void setAnesthesiaWayCode(String anesthesiaWayCode) {
                    AnesthesiaWayCode = anesthesiaWayCode;
                }

                @XmlElement(name = "OperationPartName")
                public String getOperationPartName() {
                    return OperationPartName;
                }

                public void setOperationPartName(String operationPartName) {
                    OperationPartName = operationPartName;
                }

                @XmlElement(name = "OperationIncisionDescription")
                public String getOperationIncisionDescription() {
                    return OperationIncisionDescription;
                }

                public void setOperationIncisionDescription(String operationIncisionDescription) {
                    OperationIncisionDescription = operationIncisionDescription;
                }

                @XmlElement(name = "OperationLevel")
                public String getOperationLevel() {
                    return OperationLevel;
                }

                public void setOperationLevel(String operationLevel) {
                    OperationLevel = operationLevel;
                }

                @XmlElementWrapper(name = "OperatorLists")
                @XmlElement(name = "OperatorList")
                public List<OperatorList> getOperatorLists() {
                    return OperatorLists;
                }

                public void setOperatorLists(List<OperatorList> operatorLists) {
                    OperatorLists = operatorLists;
                }

                @XmlElementWrapper(name = "AnesthesiaDoctorLists")
                @XmlElement(name = "AnesthesiaDoctorList")
                public List<AnesthesiaDoctorList> getAnesthesiaDoctorLists() {
                    return AnesthesiaDoctorLists;
                }

                public void setAnesthesiaDoctorLists(List<AnesthesiaDoctorList> anesthesiaDoctorLists) {
                    AnesthesiaDoctorLists = anesthesiaDoctorLists;
                }

                @XmlElementWrapper(name = "AssistantorLists")
                @XmlElement(name = "AssistantorList")
                public List<AssistantorList> getAssistantorLists() {
                    return AssistantorLists;
                }

                public void setAssistantorLists(List<AssistantorList> assistantorLists) {
                    AssistantorLists = assistantorLists;
                }

                @XmlElementWrapper(name = "InstrumentNurseLists")
                @XmlElement(name = "InstrumentNurseList")
                public List<InstrumentNurseList> getInstrumentNurseLists() {
                    return InstrumentNurseLists;
                }

                public void setInstrumentNurseLists(List<InstrumentNurseList> instrumentNurseLists) {
                    InstrumentNurseLists = instrumentNurseLists;
                }

                @XmlElement(name = "OperatorRequirement")
                public String getOperatorRequirement() {
                    return OperatorRequirement;
                }

                public void setOperatorRequirement(String operatorRequirement) {
                    OperatorRequirement = operatorRequirement;
                }

                @XmlElement(name = "RemarkInfo")
                public String getRemarkInfo() {
                    return RemarkInfo;
                }

                public void setRemarkInfo(String remarkInfo) {
                    RemarkInfo = remarkInfo;
                }

                @ToString
                public static class InstrumentNurseList {
                    private String InstrumentNurseName;        //手术护士名称
                    private String InstrumentNurseDeptName;    //手术护士科室名称

                    @XmlElement(name = "InstrumentNurseName")
                    public String getInstrumentNurseName() {
                        return InstrumentNurseName;
                    }

                    public void setInstrumentNurseName(String instrumentNurseName) {
                        InstrumentNurseName = instrumentNurseName;
                    }

                    @XmlElement(name = "InstrumentNurseDeptName")
                    public String getInstrumentNurseDeptName() {
                        return InstrumentNurseDeptName;
                    }

                    public void setInstrumentNurseDeptName(String instrumentNurseDeptName) {
                        InstrumentNurseDeptName = instrumentNurseDeptName;
                    }
                }

                @ToString
                public static class AssistantorList {
                    private String AssistantorName;
                    private String AssistantorDeptName;

                    @XmlElement(name = "OperatorName")
                    public String getAssistantorName() {
                        return AssistantorName;
                    }

                    public void setAssistantorName(String assistantorName) {
                        AssistantorName = assistantorName;
                    }

                    @XmlElement(name = "AssistantorDeptName")
                    public String getAssistantorDeptName() {
                        return AssistantorDeptName;
                    }

                    public void setAssistantorDeptName(String assistantorDeptName) {
                        AssistantorDeptName = assistantorDeptName;
                    }
                }

                @ToString
                public static class AnesthesiaDoctorList {
                    private String AnesthesiaDoctorType;
                    private String AnesthesiaDoctorName;
                    private String AnesthesiaDoctorDeptName;

                    @XmlElement(name = "AnesthesiaDoctorType")
                    public String getAnesthesiaDoctorType() {
                        return AnesthesiaDoctorType;
                    }

                    public void setAnesthesiaDoctorType(String anesthesiaDoctorType) {
                        AnesthesiaDoctorType = anesthesiaDoctorType;
                    }

                    @XmlElement(name = "AnesthesiaDoctorName")
                    public String getAnesthesiaDoctorName() {
                        return AnesthesiaDoctorName;
                    }

                    public void setAnesthesiaDoctorName(String anesthesiaDoctorName) {
                        AnesthesiaDoctorName = anesthesiaDoctorName;
                    }

                    @XmlElement(name = "AnesthesiaDoctorDeptName")
                    public String getAnesthesiaDoctorDeptName() {
                        return AnesthesiaDoctorDeptName;
                    }

                    public void setAnesthesiaDoctorDeptName(String anesthesiaDoctorDeptName) {
                        AnesthesiaDoctorDeptName = anesthesiaDoctorDeptName;
                    }
                }

                @ToString
                public static class OperatorList {
                    private String OperatorType;    //1、主 2、副
                    private String OperatorName;    //手术医师名称
                    private String OperatorDeptName;//手术医师科室名称

                    @XmlElement(name = "OperatorType")
                    public String getOperatorType() {
                        return OperatorType;
                    }

                    public void setOperatorType(String operatorType) {
                        OperatorType = operatorType;
                    }

                    @XmlElement(name = "OperatorName")
                    public String getOperatorName() {
                        return OperatorName;
                    }

                    public void setOperatorName(String operatorName) {
                        OperatorName = operatorName;
                    }

                    @XmlElement(name = "OperatorDeptName")
                    public String getOperatorDeptName() {
                        return OperatorDeptName;
                    }

                    public void setOperatorDeptName(String operatorDeptName) {
                        OperatorDeptName = operatorDeptName;
                    }
                }

            }

        }
    }

}
